package org.hjl.commonutils.map;

import java.util.HashMap;
import java.util.Map;

/**
 * map工具类
 *
 * @author hjl
 * @version 1.0
 * @since 2024-08-07 10:04
 */
public class MapUtil<K, V> extends HashMap<K, V> {

    private static final Integer DEFAULT_SIZE = 16;

    /**
     * 创建HashMap 默认长度
     */
    public static <K, V> Map<K, V> newHashMap() {
        return new HashMap<>(DEFAULT_SIZE);
    }

    /**
     * 创建指定初始容量HashMap
     */
    public static <K, V> Map<K, V> newHashMap(Integer size) {
        if (null == size) {
            size = DEFAULT_SIZE;
        }
        return new HashMap<>(size);
    }

    /**
     * 根据map 创建新的HashMap，值拷贝
     *
     * @param map 源map
     */
    public static <K, V> Map<K, V> newHashMap(Map<K, V> map) {
        return new HashMap<>(map);
    }

    /**
     * 根据K V创建新map
     *
     * @param key   健
     * @param value 值
     */
    public static <K, V> Map<K, V> of(K key, V value) {
        Map<K, V> itemMap = newHashMap();
        itemMap.put(key, value);
        return itemMap;
    }


}
